package com.mthree;

/**
 * 编程统计字符串"ABCD123!@#$%ab"中大写字母、小写字母、数字、其它字符的个数并打 印出来。
 */
public class OneTest {

    public static void main(String[] args) {

        //1.声明String类型的对象
        String str = new String("ABCD123!@#$%ab");
        //3.声明int类型变量，用于记录相同子串出现的数量
        int num = 0;
        int num1 = 0;
        int num2 = 0;
        int num3 = 0;
        //2.使用for each循环对数组进行便利查询
        for (int i = 0; i < str.length(); i++) {
            //if判断
            //((str.charAt(i)+"").matches("[A-Z]"))，首先将str使用charArt转换为char类型的字符，然后取值且转换为String类型并且使用matches进行判断是否满足相应格式
            if (((str.charAt(i) + "").matches("[A-Z]"))) {
                System.out.println(str.charAt(i)+"：为大写字母");
                //
                num++;
                //((str.charAt(i)+"").matches("[0-9]"))，首先将str使用charArt转换为char类型的字符，然后取值且转换为String类型并且使用matches进行判断是否满足相应格式
            } else if (((str.charAt(i) + "").matches("[\\d]"))) {
                System.out.println(str.charAt(i)+"：为0-9");
                num1++;
                //((str.charAt(i)+"").matches("[a-z]"))，首先将str使用charArt转换为char类型的字符，然后取值且转换为String类型并且使用matches进行判断是否满足相应格式
            } else if (((str.charAt(i) + "").matches("[a-z]"))) {
                System.out.println( str.charAt(i)+"：为小写字母");
                num2++;
                //其他字符
            } else {
                System.out.println(str.charAt(i)+"：为其他字符" );
                num3++;
            }


        }
        //打印
        System.out.println("-------------------------------");
        System.out.println("大写字母共有："+num+"个");
        System.out.println("0-9共有："+num1+"个");
        System.out.println("小写字母共有："+num2+"个");
        System.out.println("其他字符共有："+num3+"个");

    }

}